import axios from 'axios'
import {useUserStore} from "@/store/module/user";
import router from "@/router";

axios.defaults.baseURL = "/blogAPI"


//设置请求拦截器
axios.interceptors.request.use((config) => {
    const userStore = useUserStore()
    // 携带上token
    let token = userStore.token
    token && (config.headers.Authorization = token)
    return config
}, error => {
    return Promise.reject(error)
})

//响应拦截器
axios.interceptors.response.use(
    (response) => {
        const userStore = useUserStore()
        //未登录
        if (response.data.code === 405) {
            router.push({
                path: '/'
            })
            userStore.logout()
        }
        if (response.data.code !== 0) {
            window.$message.error(response.data.msg)
        } else {
            // window.$message.success(response.data.msg)
        }
        return response;
    }, (error => {
        // 请求错误时做些事
        if (error.request) {
            window.$message.error(`链接服务器失败`)
            // return Promise.reject(error.message); // 返回拒绝状态的 Promise 对象，将错误信息传递给后续的 Promise 处理函数
        } else if (error.response) {
            console.log('error.response', error.response)
            window.$message.error('服务器响应错误')
            // return Promise.reject(error); // 返回拒绝状态的 Promise 对象，将错误信息传递给后续的 Promise 处理函数
        } else {
            console.log('Unknown Error:', error)
            window.$message.error('未知错误')
        }

    })
)

export default axios
